本文同步發表於小弟自架網站:微確幸資訊站
import pandas as pd
import numpy as np
# Create multi-index for year, semester, academic, and gender
year = [109, 110]
semester = [1, 2]
academic = ['碩士班', '大學部']
gender = ['男', '女']
index = pd.MultiIndex.from_product([year, semester, academic, gender],
names=['學年', '學期', '學制', '性別'])
# Create DataFrame with random values and multi-index
df = pd.DataFrame(np.random.randint(300,size=(len(year)*len(semester)*len(academic)*len(gender)
,1)),index=index,columns=["學生人數"])
df
將性別的變數向右延展成為寬表格:
df1 = pd.pivot_table(df, values=['學生人數'], columns=['性別'], index=['學年', '學期', '學制']).reset_index()
df1
先看一下欄位名稱是MultiIndex:
df1.columns
將MultiIndex欄名結合成字串後做為新欄名
df1.columns = [''.join(tup) for tup in df1.columns]
df1
將學制、性別的變數向右延展成為寬表格:
df2 = pd.pivot_table(df, values=['學生人數'], columns=[ '學制', '性別'], index=['學年', '學期']).reset_index()
df2
先看一下欄位名稱是三層的MultiIndex:
df2.columns
一樣將MultiIndex欄名結合成字串後做為新欄名
df2.columns = [''.join(tup) for tup in df2.columns]
df2